php session[]能否存数组

来源:百度知道 编辑:UC知道 时间:2024/06/16 03:38:41
我用session[result]存从database取出的表,结果再次进入此php时不能读取,是什么原因??

session是可以存储数组和对象的,但是不可用存储souce
只能这样做。
mysql_select_db("test",$con);
$result=mysql_query("select * from user ");

$_SESSION["result"]=$result;
$arr= array();
while($row = mysql_fetch_row($result))
{
$arr[] =$row;

}
$_SESSION["rows"]=$arr;
以下来自php5手册
Warning
有些类型的数据不能被序列化因此也就不能保存在会话中。包括 resource 变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另一个对象)。

php的session可以存储数组。
问题可能是你的session没有被保存。
先看看用session保存简单的字符或数字能不能读取。

还有一种可能就是你保存和读取的键值不一致。

如果想利用cookie来存数组(session应该也是一样的),最好将数组进行序列化(serialization),意思就是将数组或是类转换成一个长字符串,到用时在反序列化就可以了哦,这种方法广泛应用于购物车系统等等。
具体到php的函数就是
serialize()/*序列化*/
unserialize()/*反序列化*/
另外还有json技术,是用来让php与前台的javascript进行数组通信用的一个标准,当然核心也是序列化:
json_encode(),json_decode()
经其序列化的数组通过AJAX传到javascript前台,可直接将该序列化的数组赋给一个变量,该变量即可作为像php中的数组来使用了。

session 数据跟浏览器的进程有关
lz可以输出print_r($_SE